//
//  Person.swift
//  懒加载
//
//  Created by Summer on 2017/11/14.
//  Copyright © 2017年 Summer. All rights reserved.
//

import UIKit

class Person: NSObject {

    private var _name: String?
    var name: String? {
        get {
            return _name
        }
        set {
            _name = newValue
        }
    }
    
    // setter
    var model: String? {
        // 设置完数值就会调用
        didSet {
            // 可以直接使用model，不用_model = model
            
            
            // 强行解包，当model为nil时会崩溃，一般数据模型不会为nil
            // 防止崩溃，可以先用if let
            if let m = model {
                print("更新UI \(m)")
            }
            
        }
    }
    
    // 只读属性也叫“计算型属性，本身不会占用存储空间”，根据条件计算出来，不允许修改
    // get only 的属性
    var title:String? {
        return "Mr." + (name ?? "")
    }
    
    // get only 的完整写法
    var title1: String? {
        // 只有get
        get {
            return "xxx" + (name ?? "")
        }
        // 没有set
    }
}
